package com.bjxst;
/**对象流
 * 对象的本质是用来组织和存储数据的，对象本身也是数据，*/
/*Java对象的序列化和反序列化
* 当两个进程通信时，彼此可以发送各种类型的数据，无论是何种类型的数据，都会以二进制
* 序列的形式在网络上传送。比如：通过http协议发送字符串信息，也可以在网络
* 上直接发送Java对象，发送方需要把这个Java对象转换为字节序列，才能在网络上传送
* 接收方则需要把字节序列再恢复为java对象才能正常读取
*  把java 对象转换为字节序列的过程称为对象的序列化，把字节序列恢复为java
* 对象的过程称为对象的反序列化*/
 /*对象序列化的作用：
 * 持久化：把对象的字节序列永久地保存到硬盘上，通常存在一个文件中
 * 网络通信：在网络上传送对象的字节序列，比如：服务器之间的数据通信，对象传递
 * */
public class ObjectOutputStream00 {
    /*序列化涉及的类和接口
*   ObjectOutputStream（字节流） 代表对象输出流，它的writeObject(Object obj)方法可对参数指定的obj
* 对象进行序列化，把得到的字节列写到一个目标输出流中
 *   ObjectInputStream  代表对象输入流，它的readObject()方法从一个源输入
 * 流中读取字节序列，再把它们反序列化为一个对象，并将其返回
 *   只有实现了Serializable 接口的类的对象才能被 序列化。Serializable
 * 接口是一个空接口只起到 标记 作用 */
}
